The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
A user, through a client computer, may select a movie or other media to watch and/or listen to on the user's client computer or a device coupled with the client computer. The client computer may request and download the content from one or more content server computers distributed across one or more interconnected networks.
The throughput and latency a client computer observes may be based on many factors. For example, throughput and latency may be affected by the number of networks content data may traverse, the bandwidth of any of the networks traversed, the network congestion of any networks traversed, and the distance between the client computer and the content server computer. Thus, the quality of experience the user experiences may vary drastically based on the time of day, current internet service provider, and the particular content server computer that the client computer is downloading content from.
Content providers, which maintain content server computers, may attempt to improve a user's quality of experience by hosting content on more content server computers. However, a client computer may still inadvertently, and unnecessarily, choose to download content from a content server computer, in which the content may traverse several limited, congested networks. Thus, the user's quality of experience may suffer even though other content server computers may have been sufficient and available.
Content providers may attempt to increase the user's quality of experience by hosting content on a content distribution network (“CDN”). Typically, a CDN is a large distributed system of server computers deployed in multiple data centers across a set of networks distributed across various locations. The goal of a CDN is to deliver high availability and high performance content to client computers. However, hosting content on a CDN may be extremely expensive compared to other solutions. Furthermore, client computers may choose to download content from a costly CDN, which charges the content provider based on how much data is transferred to client computers, when cheaper content server computers were sufficient and available.